[C] Decompositor de números em fatores primos
Publicado por Enzo de Brito Ferber 27/06/2007
[ Hits: 10.333 ]
Homepage: http://www.maximasonorizacao.com.br
Como o nome já diz, um programa escrito em C, que decompõe um número qualquer em fatores primos e exibe estes números para o usuário.
/* * Programa: Decompositor de numeros * Arquivo : decom_primes.c * Autor : Enzo Ferber 'Slackware_10' */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 int *lista_primos(int size){ int prime, i=0, a, b; int *list = (int*)malloc(size*sizeof(int)); if(!list){ printf("[-] Erro ao alocar memoria.\n"); printf("[-] Abortando...\n"); exit(0); } for(a=2;a<size;a++){ prime = FALSE; for(b=1;b<=a;b++){ if(b == a) prime = TRUE; if(((a%b)==0) && (b != 1)) break; } if(prime) list[i] = a; if(prime) i += 1; } list[i] = 0x0; return list; } int *fatores_primos(int num){ int *lista = lista_primos(num+1); int *fatores = (int*)malloc(num*sizeof(int)); register int i; int div_atual, fat_atual, list_ref, ref; ref = num; fat_atual = 0; list_ref = 0; div_atual = lista[list_ref]; for(i=0; i<num; i++){ if(ref == 1){ fatores[fat_atual] = 1; break; } if((ref % div_atual) == 0){ ref = ref / div_atual; fatores[fat_atual] = div_atual; fat_atual++; } if((ref % div_atual) != 0) div_atual = lista[++list_ref]; } free(lista); fatores[fat_atual+1] = 0x0; return fatores; } int main(int argc, char *argv[]){ int *list; if(argc != 2){ printf("[-] Uso: %s <numero_a_fatorar>\n", argv[0]); printf("[-] Abortando...\n"); exit(0); } list = fatores_primos(atoi(argv[1])); while(*list) printf("%d\n", *list++); return 0; }
Cálculo de divisores de um número.
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)